package com.tq.portal.connector.gitlab.model.dto;

import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;

import java.time.LocalDateTime;
import java.util.List;

/**
 * GitLab 提交信息
 *
 * @author TqCoder
 * @since 2.0.0
 */
@Data
public class GitLabCommitDTO {

    /**
     * 提交ID
     */
    private String id;

    /**
     * 短提交ID
     */
    @JsonProperty("short_id")
    private String shortId;

    /**
     * 提交标题
     */
    private String title;

    /**
     * 提交消息
     */
    private String message;

    /**
     * 作者名称
     */
    @JsonProperty("author_name")
    private String authorName;

    /**
     * 作者邮箱
     */
    @JsonProperty("author_email")
    private String authorEmail;

    /**
     * 提交者名称
     */
    @JsonProperty("committer_name")
    private String committerName;

    /**
     * 提交者邮箱
     */
    @JsonProperty("committer_email")
    private String committerEmail;

    /**
     * 创建时间
     */
    @JsonProperty("created_at")
    private LocalDateTime createdAt;

    /**
     * 提交时间
     */
    @JsonProperty("committed_date")
    private LocalDateTime committedDate;

    /**
     * 父提交ID列表
     */
    @JsonProperty("parent_ids")
    private List<String> parentIds;

    /**
     * 提交URL
     */
    @JsonProperty("web_url")
    private String webUrl;

    /**
     * 项目ID（用于区分子模块提交）
     */
    private Integer projectId;

    /**
     * 项目名称（用于区分子模块提交）
     */
    private String projectName;

    /**
     * 是否为子模块提交
     */
    private Boolean isSubmodule = false;
}

